import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

import { resolve } from 'path';
// const pathResolve = (dir) => resolve(__dirname, dir);
const pathSrc = resolve(__dirname, "src");
//按需导入
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
// import Icons from "unplugin-icons/vite";
// import IconsResolver from "unplugin-icons/resolver";

// https://vitejs.dev/config/
export default defineConfig({
  //路径别名
  resolve: {
    alias: {
      '@': pathSrc,
    },
  },

  plugins: [
    vue(),
    AutoImport({
      // 自动导入 Vue 相关函数，如：ref, reactive, toRef 等
      imports: ['vue'],
      eslintrc: {
        enabled: false, // 是否自动生成 eslint 规则，建议生成之后设置 false 
        filepath: "./.eslintrc-auto-import.json", // 指定自动导入函数 eslint 规则的文件
      },
      resolvers: [
        // 自动导入 Element Plus 相关函数，如：ElMessage, ElMessageBox... (带样式)
        ElementPlusResolver(),
        // 自动导入图标组件
        // IconsResolver({
        //   prefix: 'Icon',
        // }),
      ],
      dts: resolve(pathSrc, "types", "auto-imports.d.ts"), //  自动导入组件类型声明文件位置，默认根目录; false 关闭自动生成
    }),
    Components({
      resolvers: [
        // 自动注册图标组件
        // IconsResolver({
        //   enabledCollections: ["ep"] // element-plus图标库，其他图标库 https://icon-sets.iconify.design/
        // }),
        // 自动导入 Element Plus 组件
        ElementPlusResolver(),
        
      ],
      dts: resolve(pathSrc, "types", "components.d.ts"), //  自动导入组件类型声明文件位置，默认根目录; false 关闭自动生成
    }),
    // Icons({
    //   // 自动安装图标库
    //   autoInstall: true,
    // }),
  ],
});
